首页 > 试题广场 >

求二叉树的前序遍历

[编程题]求二叉树的前序遍历
  • 热度指数:52672 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
求给定的二叉树的前序遍历。
例如:
给定的二叉树为{1,#,2,3},
返回:[1,2,3].
备注;用递归来解这道题很简单,你可以给出迭代的解法么?
如果你不明白{1,#,2,3}的含义,点击查看相关信息
示例1

输入

{1,#,2,3}

输出

[1,2,3]

说明:本题目包含复杂数据结构TreeNode,点此查看相关信息
class Solution:
    def preorderTraversal(self , root ):
        if root!=None:
            L=[root.val]
            if root.left!=None:
                L+=self.preorderTraversal(root.left)
            if root.right!=None:
                L+=self.preorderTraversal(root.right)
            return L
        else:
            return []

发表于 2021-09-18 14:30:40 回复(0)
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

#
# 
# @param root TreeNode类 
# @return int整型一维数组
#
class Solution:
    def preorderTraversal(self , root ):
      if root==None:
        return []
      visited = []
      val = []
      while visited&nbs***bsp;root:#or root:
        while root:
          visited.append(root)
          val.append(root.val)
          root = root.left
        if visited:
          root = visited.pop()
          root = root.right
      return val
        # write code here

发表于 2021-09-01 10:20:25 回复(0)

问题信息

难度:
2条回答 35349浏览

热门推荐

通过挑战的用户

查看代码